<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>09-数组方法</title>
</head>

<body>
    <script>
        // splice 
        var arr = [1, 2, 3, 4, 5, 6]
        // 传递一个参数
        // 参数代表开始删除的下标位置，没有后面的参数，代表后面全部删除
        // arr.splice(2)
        // 传递两个参数
        // 第一个参数代表开始删除的下标位置，第二参数的代表的是删除的个数
        // arr.splice(2, 2)
        // 传递三个参数 可以实现添加和修改
        // 第一个参数代表开始删除的下标位置，第二参数的代表的是删除的个数 第三个参数代表删除后替换为的值
        // arr.splice(2, 0, '哈哈')
        // 传递n个参数 可以实现添加和修改
        // 第一个参数代表开始删除的下标位置，第二参数的代表的是删除的个数 从第三个参数开始，后面的都是删除后替换为的值
        // arr.splice(2, 2, '哈哈', 'xxx', 'oooo')


        // reduce
        /*
            pre
                第一次循环的时候，值是初始值
                剩下的循环，值是上一次返回的结果
            item 
                当前循环的项目
            index
                下标
            arr
                原数组
        */
        // let sum = arr.reduce((pre, item) => {
        //     return pre + item
        // }, 0)
        // console.log(sum)


        var data = {
            person: {
                name: 'tom'
            }
        }
        // {{ person.name }}  --> tom

        var str = 'person.name'
        // var strArr = str.split('.');   //  ['person','name']
        // for (var i = 0; i < strArr.length; i++) {
        //     data = data[strArr[i]]
        // }
        // console.log(data)
        var name = str.split('.').reduce((pre, item) => pre[item], data)
        console.log(name)
    </script>
</body>

</html>